const { DataTypes } = require('sequelize');
const seq = require('../db/seq');

const Category = seq.define('bs_category', {
    category_name: {
        type: DataTypes.STRING,
        allowNull: false, // 不能为空
        comment: '商品类目的名字',
    },
    parent_category_id: {
        type: DataTypes.INTEGER,
        allowNull: false,
        defaultValue: 0, // 默认为0，表示没有父类
        comment: '父类id, 如果没有父类, 则为0',
    },
    status: {
        type: DataTypes.BOOLEAN,
        allowNull: false,
        defaultValue: true, // 默认为启用
        comment: '是否启用, 默认为true',
    }
});
// Category.sync({ force: true })

// 设置自关联关系
Category.hasMany(Category, {
    as: 'children',
    foreignKey: 'parent_category_id',
    sourceKey: 'id',
    constraints: false // 允许 parent_category_id 为 0
});

Category.belongsTo(Category, {
    as: 'parent',
    foreignKey: 'id', // 使用 'id' 作为外键
    constraints: false // 允许 parent_category_id 为 0
});

module.exports = Category;
